package com.ssy.lingxi.settle.accounts.service;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.dto.request.*;
import com.ssy.lingxi.dto.response.InvoiceMessageResponse;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * 发票信息管理
 * @author wrc
 * @date 2020/8/25
 */
public interface InvoiceMessageService {

    /**
     * 发票信息列表查询
     * @author wrc
     * @date 2020/8/25
     */
    Wrapper<List<InvoiceMessageResponse>> invoiceMessageList(UserLoginCacheDTO sysUser);


    /**
     * 添加发票信息
     * @author wrc
     * @date 2020/8/25
     */
    Wrapper<Void> invoiceMessageAdd(InvoiceMessageAddRequest request, UserLoginCacheDTO sysUser);


    /**
     * 修改发票信息
     * @author wrc
     * @date 2020/8/26
     */
    Wrapper<Void> invoiceMessageUpdate(InvoiceMessageUpdateRequest request, UserLoginCacheDTO sysUser);


    /**
     * 删除发票信息
     * @author wrc
     * @date 2020/8/26
     */
    Wrapper<Void> invoiceMessageDelete(@RequestBody InvoiceMessageDeleteRequest request, UserLoginCacheDTO sysUser);


    /**
     * 查询发票详情
     * @author wrc
     * @date 2020/8/26
     */
    Wrapper<InvoiceMessageResponse> invoiceMessageDetails(InvoiceMessageDeleteRequest request);

    /**
     * 查询默认发票
     * @author 伍将
     * @date 2021/2/4
     * @param request: 请求参数
     * @return 操作结果
     **/
    Wrapper<InvoiceMessageResponse> getDefaultInvoice(InvoiceMessageGetRequest request);

    /**
     * 根据会员角色ids,查询默认发票
     * @param request 查询请求
     * @return 默认发票
     */
    Wrapper<List<InvoiceMessageResponse>> getMemberInvoiceMessageList(InvoiceMessageListRequest request);
}
